using System;
using System.Collections.Specialized;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[Guid("7a0cf958-30a7-4514-b943-b5f97cf5edda")]
	public class EscalationTime : EscalationTimeCriteria
	{
		private BitVector32 _monthDays;
		private BitVector32 _weekDays;
		private BitVector32 _hours;
		private int _minute;
		public BitVector32 MonthDays
		{
			get
			{
				return this._monthDays;
			}
			set
			{
				this._monthDays = value;
			}
		}
		public BitVector32 WeekDays
		{
			get
			{
				return this._weekDays;
			}
			set
			{
				this._weekDays = value;
			}
		}
		public BitVector32 Hours
		{
			get
			{
				return this._hours;
			}
			set
			{
				this._hours = value;
			}
		}
		public int Minute
		{
			get
			{
				return this._minute;
			}
			set
			{
				this._minute = value;
			}
		}
		public EscalationTime(BitVector32 monthDays, BitVector32 weekDays, BitVector32 hours, int minutes)
		{
			this.MonthDays = monthDays;
			this.WeekDays = weekDays;
			this.Hours = hours;
			this.Minute = minutes;
		}
		internal EscalationTime(object[] rawData, Server server)
		{
			int[] indexSpec = new int[1];
			this.MonthDays = new BitVector32(Convert.ToInt32(Util.GetAt(rawData, indexSpec)));
			this.WeekDays = new BitVector32(Convert.ToInt32(Util.GetAt(rawData, new int[]
			{
				1
			})));
			this.Hours = new BitVector32(Convert.ToInt32(Util.GetAt(rawData, new int[]
			{
				2
			})));
			this.Minute = Convert.ToInt32(Util.GetAt(rawData, new int[]
			{
				3
			}));
		}
		internal static object ToVariant(object given, Server server)
		{
			EscalationTime escalationTime = given as EscalationTime;
			if (escalationTime == null)
			{
				return given;
			}
			return new object[]
			{
				2,
				new object[]
				{
					escalationTime.MonthDays.get_Data(),
					escalationTime.WeekDays.get_Data(),
					escalationTime.Hours.get_Data(),
					escalationTime.Minute
				}
			};
		}
	}
}
